public class mytest {
    public static void main(String[] args) {
        //字符串类型
        String str = "huahua";
        System.out.println(str);
        //字符串的拼接
        //int转化为string
        int a = 100;
        String s1=String.valueOf(a);//调用string的一个库方法
        System.out.println(s1);//100
        String s2=a+"";
        System.out.println(s2);//100
        String s3 = 10+20+"x";
        String s4 = "x"+10+20;
        System.out.println(s3);//30x
        System.out.println(s4);//x1020
        System.out.println("===========================");
        //string--int
        //调用Integer的方法转换
        String str1 = "08042";
        int ret = Integer.valueOf(str1);
        System.out.println(str1);
        int ret2 = Integer.parseInt(str1);
        System.out.println(str1);

    }
    public static void main7(String[] args) {
        //byte和byte的运算
        byte a = 10;
        byte b = 20;
        //byte c = a + b;
        //编译会报错 因为计算式会先将a和b提升为int 赋值给c时出现错误
        byte c =(byte)( a + b);

    }
    public static void main6(String[] args) {
        //类型提升 -数据类型小的会被提升为数据类型大的
        int a = 10;
        long b = 20;
        int c = (int) (a+b);//不转换则会报错
        long d = a+b;//int和Long之间 被提升为long


    }
    public static void main5(String[] args) {
        //类型转换
        int a = 10;
        long b = 100L;
        b=a; //自动类型转换  数值范围小的转换为数值范围大的
        //a=b;//不兼容类型实际为long需要int
        a = (int)b;//强制类型转换 可能丢失数据

        //byte c = 256;//java当中字面值直接赋值是允许的，前提是不超过表示范围
        byte c = 127;

    }
    public static void main4(String[] args) {
        //布尔类型
        boolean flg=true;
        System.out.println(flg);
        //boolean 只有true和false两种取值 没有明确规定占几个字节
        //boolean和int不能相互转换 不存在1表示ture 0表示false
    }
    public static void main3(String[] args) {
        char ch='A';//两个字节 和C有区别
        System.out.println(ch);;
        char ch2='华';//java中字符可以存放整形
        System.out.println(ch2);
    }
    public static void main2(String[] args) {
        //浮点型变量
        double d = 12.5;
        System.out.println(d);
        int a = 1;
        int b = 2;
        System.out.println(a/b);//0
        double num = 1.1;
        System.out.println(num*num);//1.2100000000000002
        //单精度的浮点类型
        float f=12.5f;//四个字节
        System.out.println(f);
        //double在任何系统下都占8字节
        //浮点数和整数在内存中的存储方式不同，不能单纯得用2^n的形式来计算

        System.out.println(Double.MAX_VALUE);
        //输出的是浮点数最小的一个非负整数
    }
}
